Gut, wunderbar, dann würde ich sagen legen wir los. Bevor ich zum eigentlichen Inhalt komme,
noch ein kleiner Hinweis. Nächste Woche feiert das Rechenzentrum Jubiläum, deshalb brauchen die den
Raum hier. Wir sind deshalb im H5, das ist im E-Technik-Turm drüben, das heißt einmalig
nächste Woche bitte nicht hierher kommen, ansonsten seid ihr an der Jubiläumsveranstaltung
vom Rechenzentrum, kann auch interessant sein, aber mich würde es freuen, wenn ihr in den
H5 schafft. Okay, wir haben uns letzte Woche angeschaut, wie man mit periodischen Aufgabensystemen
in zeitgesteuertem, in einer zeitgesteuerten Variante klarkommt, das heißt wir haben uns
da angeguckt, wie kann man ganz einfach sein eigenes Echtzeitbetriebssystem bauen, haben
uns dann die Busy Loop angeschaut, haben uns dann angeschaut, wie man das formalisieren
kann, wie man zu Ablauftabellen kommt. Heute soll es darum gehen, wie man das in der anderen
Welt implementiert, also mit dem anderen Paradigma, mit dem Ereignisgesteuerten Paradigma, letztendlich
in der Welt, in der 80, 90 Prozent aller Echtzeitssysteme dann auch tatsächlich gebaut werden, das
heißt heute müssen wir uns dann tatsächlich mal darum kümmern, wie kommen wir zu Prioritäten.
Genau, also die Frage ist, was sind Prioritäten, also wozu benutzen wir die, wie können wir
die finden, wie bilden wir unsere Aufgaben eigentlich auf Prioritäten ab. Da gibt es
statische und dynamische Verfahren, wenn man dann klären, was das genau ist und wir werden
eine Frage klären, die ihr in den Übungen, der in den Übungen nicht begegnen werdet,
der man auch inzwischen relativ selten in der Praxis begegnen möchte, frage, was mache
ich eigentlich, wenn ich mehr Prioritäten brauche als das Betriebssystem kann. Also
das ist durchaus nicht unüblich, dass ein Betriebssystem so was wie 256 Prioritätsebenen
kann, weil dann kann ich mit einem Byte auskommen, um die zu speichern. Ja, das geht dann halt
nicht mehr, wenn ich mehr als 256 Tasks habe in meinem System. Auch das werden wir uns
mal kurz angucken. Ändert sich halt jetzt in den letzten Jahren, weil Betriebssysteme
zunehmend dann auch etwas verschwenderischer mit dem Speicher umgehen, nehme ich halt einen
16 oder 32 Bit Wert für meine Prioritätsebenen und dann ist das Problem letztendlich auch
vom Tisch. Gut, dann haben wir schon geklärt, was Optimalität eigentlich bedeutet. Also
letztendlich die Frage, gibt es Planungsalgorithmen, mit denen ich auch tatsächlich einen Ablaufplan
finde, so den einer existiert, das gucken wir uns für die Ereignisgestellten Systeme
an und gucken uns dann auch noch an, wie wir jetzt beurteilen können, ob wir tatsächlich
ein Echtzeitsystem gebaut haben oder nicht. Also wir erinnern uns, letzte Woche haben
wir gesagt, naja gut, wenn wir einen Ablaufplan finden, sprich, wenn wir den Stundenplan aufstellen
können, dann ist damit implizit auch bewiesen, dass das System seine Zeitschranken einhält.
Wenn ich jetzt Online Scheduling habe und ich habe keinen Stundenplan mehr, ich habe
keinen Ablaufplan mehr, woher weiß ich denn im Voraus, dass das Echtzeitsystem seine Termine
einhalten wird und man macht das mit sogenannten Planbarkeitskriterien, CPU-Auslastungen oder
Antwortzeitanalysen, das gucken wir uns also auch an, wie das jetzt in diesem Fall funktioniert.
Okay, legen wir erstmal los mit der Einplanung. Es gibt unglaublich viele Verfahren, also
da sind wir wieder in der Welt der Theoretiker. Ich habe gerade jetzt 10 Papiere auf dem Tisch
liegen von einer großen Konferenz, Echtzeitkonferenz, die ich begutachten soll und von diesen 10
Papieren sind halt 8 Scheduling-Papiere und ich tue mir damit extrem schwer, weil die
im Wesentlichen aus Theorien und Beweisen bestehen und man eigentlich Stunden und Tage braucht,
um durchzusteigen, was die Leute da eigentlich treiben. Also da gibt es wahnsinnig viel,
da könnt ihr sehr sehr viel finden. Es gibt aber wenige, die wirklich praxisrelevant sind,
zu denen zählen jetzt die, die ich hier aufliste, in jedem Fall. Für statische Prioritäten gibt es
das sogenannte Ratenmonotone, den Ratenmonoton-Algorithmus oder das Ratenmonotone-Verfahren
oder kurz AM. Das funktioniert ganz einfach, ich gucke mir meine Aufgaben an und je kürzer die
Periode ist, desto höher wähle ich die Priorität. Ganz einfach. Das funktioniert für bestimmte
Aufgabensysteme sehr gut, werden wir gleich noch sehen. Es gibt aber auch Aufgabensysteme,
für die funktioniert das nicht, insbesondere dann nicht. Wenn ich die Annahme, das Termin,
gleich Periode, wenn ich die aufgebe, dann funktioniert dieser Ratenmonoton-Algorithmus
Presenters
Zugänglich über
Offener Zugang
Dauer
01:22:16 Min
Aufnahmedatum
2018-11-22
Hochgeladen am
2018-11-22 23:49:04
Sprache
de-DE
Durch die Kopplung an die Realzeit, sind Echtzeitsysteme per Definition in die (reale) Umwelt eingebettet. Hier dienen sie typischerweise der Steuerung und Regelung von physikalischen Prozessen, wie beispielsweise dem Airbag eines Fahrzeugs.
Die Entwicklung eines Echtzeitsystems schliesst typischerweise Experten aus verschiedenen Bereichen mit ein. Die Veranstaltung nähert sich der Thematik zwar aus der Sicht der Informatik, ist jedoch grundsätzlich interdisziplinär ausgelegt und richtet sich sowohl an Studierende der Informatik als auch an diejenigen anderer Studiengänge mit einem anwenungsorientierten Bezug wie beispielsweise Mechatronik, Elektrotechnik, I&K, CE, Maschinenbau und Medizintechnik (siehe Vorraussetzungen).
Entsprechend weit spannt sich auch das Themengebiet Echtzeitsysteme auf. Abhängig von der Betrachtungsebene spricht man allgemein von eingebetteten Systemen oder, um den regelungstechnischen Anteil hervorzuheben, von Cyber-Physical Systems. Die Veranstaltung Echtzeitsysteme nimmt hierbei den Standpunkt der Systemsoftware (Echtzeitbetriebssystem) ein und erlaubt dadurch einen querschneidenden Einblick in die gesamte Welt der Echtzeitsystementwicklung. Die Vorlesung vermittelt dabei die notwendigen Grundkenntnisse, Techniken und Mechanismen für die Entwicklung von Echtzeit(betriebs)systemen und schafft damit eine gemeinsame Grundlage für alle Beteiligten.
Ziel der Veranstaltung ist neben einem fundierten theoretischen Überblick auch die tiefgehende Vermittlung von praktischem Wissen und Fähigkeiten, welche als Basis für eine erfolgreiche industrielle bzw. wissenschaftliche Anwendung dienen können.